home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 2 / Apprentice-Release2.iso / Source Code / Peter Lewis / PNL Libraries / MyTranslate82728.p < prev    next >
Encoding:
Text File  |  1994-08-04  |  1.1 KB  |  58 lines  |  [TEXT/PJMM]

  1. unit MyTranslate82728;
  2.  
  3. interface
  4.  
  5.     const
  6.         translateResType = 'taBL';
  7.         translateOutResID = 128;
  8.         translateInresID = 129;
  9.  
  10.     type
  11.         transTable = packed array[char] of char;
  12.  
  13.     procedure GetTrans (id: integer; var trans: transTable);
  14.  
  15. implementation
  16.  
  17.     uses
  18.         MyNewPreferences, MyFileSystemUtils;
  19.  
  20.     const
  21.         translate_name = 'Translate 7<->8';
  22.  
  23.     procedure GetTrans (id: integer; var trans: transTable);
  24.         var
  25.             th: handle;
  26.             tfs: FSSpec;
  27.             tres, i: integer;
  28.         procedure Openit (fs: FSSPec);
  29.         begin
  30.             fs.name := translate_name;
  31.             MyResolveAliasFile(fs);
  32.             tres := HOpenResFile(fs.vRefNum, fs.parID, fs.name, fsRdPerm);
  33.         end;
  34.     begin
  35.         OpenIt(prefs_fs);
  36.         if tres = -1 then begin
  37.             tfs.vRefNum := the_prefs_folder_vrn;
  38.             tfs.parID := the_prefs_folder_dirID;
  39.             OpenIt(tfs);
  40.         end;
  41.         th := GetResource(translateResType, id);
  42.         if th = nil then begin
  43.             for i := 0 to 255 do begin
  44. {$PUSH}
  45. {$R-}
  46.                 trans[chr(i)] := chr(i);
  47. {$POP}
  48.             end;
  49.         end
  50.         else begin
  51.             BlockMove(th^, @trans, SizeOf(trans));
  52.         end;
  53.         if tres <> -1 then begin
  54.             CloseResFile(tres);
  55.         end;
  56.     end;
  57.  
  58. end.